Skip to content

Latest commit

 

History

History
72 lines (47 loc) · 1.7 KB

File metadata and controls

72 lines (47 loc) · 1.7 KB

퍼사드 패턴은 클라이언트가 사용해야 하는 복잡한 서브 시스템 의존성을 간단한 인터페이스로 추상화 하는 디자인 패턴이다. Client는 서브시스템의 존재를 모르는 상태로, 오직 facade클래스에만 접근할 수 있도록 하는것이 특징이다.


예시 코드

public class PizzaFacade {

    private final Chef chef = new Chef();
    private final Oven oven = new Oven();

    public Pizza makingPizza() {

        Pizza pizza = chef.makingDough();

        pizza = chef.addToppings(pizza);

        return oven.grillingPizza(pizza);

    }
}
@NoArgsConstructor
public class Pizza {
}

@NoArgsConstructor
public class Oven {

    public Pizza grillingPizza(Pizza pizza) {
        return pizza;
    }
}

@NoArgsConstructor
public class Chef {

    public Pizza makingDough() {
        return new Pizza();
    }

    public Pizza addToppings(Pizza pizza) {
        return pizza;
    }
}

여러 클래스에 접근해서 로직을 실행하는 책임을 PizzaFacade 클래스에 몰아넣었다.

public class App {

    public static void main(String[] args) {

        PizzaFacade pizzaFacade = new PizzaFacade();

        Pizza pizza = pizzaFacade.makingPizza();

        System.out.println(pizza);
    }
}

클라이언트에선 pizzaFacade.makingPizza()를 호출하면 간단하게 피자를 만들 수 있다.

링크로 가면 코드를 볼 수 있다.